package com.xinchao.job.mapper.dmp;

import com.xinchao.common.model.advertise.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName PremisesMapper
 * @Description TOOD
 * @Author HanQinrui
 * @Date 2018/9/29 17:22
 * @Version 1.0
 **/
public interface PremisesMapper {

    /**
     * 删除项目列表
     * @param cityCode 城市编码
     */
    void deletePremisesByCityCode(@Param("cityCode") String cityCode);

    /**
     * 删除路线项目关系
     * @param cityCode 城市编码
     */
    void deleteRoutePremisesByCityCode(@Param("cityCode") String cityCode);

    /**
     * 删除路单终端
     * @param cityCode 城市编码
     */
    void deleteTravelDeviceByCityCode(@Param("cityCode") String cityCode);

    /**
     * 删除项目路单终端关系
     * @param cityCode 城市编码
     */
    void deletePremisesTravelDeviceByCityCode(@Param("cityCode") String cityCode);

    /**
     * 删除项目和节目关系
     * @param cityCode 城市编码
     */
    void deletePremisesProgramByCityCode(@Param("cityCode") String cityCode);

    /**
     * 将该城市的项目列表写进历史表
     * @param cityCode 城市编码
     * @param currentTime
     */
    void insertHisPremises(@Param("cityCode") String cityCode, @Param("currentTime") Long currentTime);

    /**
     * 将该城市下的路线项目关系写进历史表
     * @param cityCode 城市编码
     * @param currentTime
     */
    void insertHisRoutePremises(@Param("cityCode") String cityCode, @Param("currentTime") Long currentTime);

    /**
     * 将该城市下的路单终端写进历史表
     * @param cityCode 城市编码
     * @param currentTime
     */
    void insertHisTravelDevice(@Param("cityCode") String cityCode, @Param("currentTime")Long currentTime);

    /**
     * 将该城市下的路单终端关系写进历史表
     * @param cityCode 城市编码
     * @param currentTime
     */
    void insertHisPremisesTravelDevice(@Param("cityCode")String cityCode, @Param("currentTime") Long currentTime);

    /**
     * 将该城市下的项目节目关系写进历史表
     * @param cityCode 城市编码
     * @param currentTime
     */
    void insertHisPremisesProgram(@Param("cityCode")String cityCode, @Param("currentTime")Long currentTime);

    /**
     * 批量插入机器信息
     * @param travelDeviceList 机器列表
     */
    void insertBatchTravelDevice(List<TravelDeviceDTO> travelDeviceList);

    /**
     * 批量插入项目路单终端关系
     * @param premisesTravelDeviceList 项目路单终端关系
     */
    void insertBatchPremisesTravelDevice(List<PremisesTravelDevice> premisesTravelDeviceList);

    /**
     * 批量插入项目节目关系
     * @param premisesProgramList 项目节目关系
     */
    void insertBatchPremisesProgram(List<PremisesProgram> premisesProgramList);

    /**
     * 批量插入项目premises
     * @param premisesList
     */
    void insertBatchPremises(List<PremisesDTO> premisesList);

    /**
     * 批量插入路线项目关系
     * @param routePremisesList
     */
    void insertBatchRoutePremises(List<RoutePremises> routePremisesList);
}
